
#ifndef __QUASINEWTON_STATE_H__

#include "linmin.h"

typedef struct
{
  lineminimizer *line_minimizer;
  double alpha;
  double tol;
  gsl_matrix *H;
  gsl_matrix *tmpH;
  gsl_vector *Bp;
  gsl_vector *Sq;
  gsl_vector *d;
  gsl_vector *p;
  gsl_vector *q;
  double f_plus;
  gsl_vector *x_plus;
  gsl_vector *gradient_plus;
  
  gsl_vector *alpha_coeff;
  gsl_matrix *P;
  gsl_matrix *Q;
}
bfgs_state_t;

#define __QUASINEWTON_STATE_H__

#endif
